package com.hjm.project.auditdata.auditdata.domain;

import com.hjm.framework.aspectj.lang.annotation.Excel;
import com.hjm.framework.web.domain.BaseEntity;
import com.hjm.project.accounts.accounts.domain.Accounts;
import com.hjm.project.agentInfo.agentInfo.domain.AgentInfo;
import com.hjm.project.merchantInfo.merchantInfo.domain.MerchantInfo;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;

/**
 * 清算数据对象 auditdata
 *
 * @author LOVE
 * @date 2020-11-27
 */
public class Auditdata extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 交易流水号
     */
    @Excel(name = "交易流水号")
    private String serial;

    /**
     * 交易类型
     */
    @Excel(name = "交易类型")
    private String msgtype;

    /**
     * 系统商户号
     */
    @Excel(name = "系统商户号")
    private String merno;

    /**
     * 系统终端号
     */
    @Excel(name = "系统终端号")
    private String posno;

    /**
     * 服务商编号
     */
    @Excel(name = "服务商编号")
    private Long agentNum;
    private String agentName;

    /**
     * 清算日期
     */
    @Excel(name = "清算日期")
    private String auditdate;

    /**
     * 交易日期
     */
    @Excel(name = "交易日期")
    private String localdate;

    /**
     * 交易时间
     */
    @Excel(name = "交易时间")
    private String localtime;

    /**
     * 通道ID
     */
    @Excel(name = "通道ID")
    private Long bid;

    /**
     * 交易卡号
     */
    @Excel(name = "交易卡号")
    private String pan;

    private String ldMerno;

    /**
     * 费率代号
     */
    @Excel(name = "费率代号")
    private String rateCode;

    /**
     * 交易金额
     */
    @Excel(name = "交易金额")
    private String amount;

    /**
     * 手续费
     */
    @Excel(name = "手续费")
    private String charge;

    /**
     * 结算金额
     */
    @Excel(name = "结算金额")
    private String tmoney;

    /**
     * 附加费率代号
     */
    @Excel(name = "附加费率代号")
    private String rateAffix;

    /**
     * 附加费
     */
    @Excel(name = "附加费")
    private String affixCharge;

    /**
     * 通道编号
     */
    @Excel(name = "通道编号")
    private String bno;

    /**
     * 商户类别(0-标准类、1-优惠类、2-减免类)
     */
    @Excel(name = "商户类别(0-标准类、1-优惠类、2-减免类)")
    private Long merCategory;

    /**
     * 卡类型，0：未知、1：借记卡、2：贷记卡、3：预付费卡
     */
    @Excel(name = "卡类型，0：未知、1：借记卡、2：贷记卡、3：预付费卡")
    private Long cardtype;

    /**
     * 结算类型 0：D0 1：T1
     */
    @Excel(name = "结算类型 0：D0 1：T1")
    private Long settType;

    /**
     * 交易状态，0：成功、1：补录
     */
    @Excel(name = "交易状态，0：成功、1：补录")
    private Long status;

    /**
     * 出款流水号
     */
    @Excel(name = "出款流水号")
    private String settleSerial;

    /**
     * 出款状态 -1：已上送 0：待处理（默认） 1：出款成功 -2：出款失败 -3：冻结
     */
    @Excel(name = "出款状态 -1：已上送 0：待处理", readConverterExp = "默=认")
    private Long settleState;

    /**
     * 是否分润 0：未发 1：已发
     */
    @Excel(name = "是否分润 0：未发 1：已发")
    private Long isProfit;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remarks;

    /**
     * sn
     */
    @Excel(name = "sn")
    private String sn;

    /**
     * 输入方式（区分磁条芯片卡）98 挥卡 05插卡 02刷卡
     */
    @Excel(name = "输入方式", readConverterExp = "区=分磁条芯片卡")
    private String inputtype;

    /**
     * 0:普通交易 1双免交易
     */
    @Excel(name = "0:普通交易 1双免交易")
    private Long isdissmis;

    /**
     * 0:普通交易 1 云闪付交易
     */
    @Excel(name = "0:普通交易 1 云闪付交易")
    private Long isysf;

    /**
     * 渠道参考号
     */
    @Excel(name = "渠道参考号")
    private String rrno;

    /**
     * 0 普通交易 1手机pay
     */
    @Excel(name = "0 普通交易 1手机pay")
    private Long phonepay;

    /**
     * 保险费用
     */
    @Excel(name = "保险费用")
    private BigDecimal inscharges;

    /**
     * 0 线下交易 1 线上交易
     */
    @Excel(name = "0 线下交易 1 线上交易")
    private Long isonline;

    /**
     * 电签流量费
     */
    @Excel(name = "电签流量费")
    private BigDecimal simMoney;

    private String screenName;
    private String showScreennum;

    private MerchantInfo merchantInfo;
    private AgentInfo agentInfo;
    private Accounts accounts;

    public MerchantInfo getMerchantInfo() {
        if (null == merchantInfo) {
            merchantInfo = new MerchantInfo();
        }
        return merchantInfo;
    }



    public String getLdMerno() {
        return ldMerno;
    }

    public void setLdMerno(String ldMerno) {
        this.ldMerno = ldMerno;
    }

    public String getScreenName() {
        return screenName;
    }

    public void setScreenName(String screenName) {
        this.screenName = screenName;
    }

    public String getShowScreennum() {
        return showScreennum;
    }

    public void setShowScreennum(String showScreennum) {
        this.showScreennum = showScreennum;
    }

    public String getAgentName() {
        return agentName;
    }

    public void setAgentName(String agentName) {
        this.agentName = agentName;
    }

    public void setMerchantInfo(MerchantInfo merchantInfo) {
        this.merchantInfo = merchantInfo;
    }

    public AgentInfo getAgentInfo() {
        if (null == agentInfo) {
            agentInfo = new AgentInfo();
        }
        return agentInfo;
    }

    public void setAgentInfo(AgentInfo agentInfo) {
        this.agentInfo = agentInfo;
    }

    public Accounts getAccounts() {
        if (null == accounts) {
            accounts = new Accounts();
        }
        return accounts;
    }

    public void setSerial(String serial) {
        this.serial = serial;
    }

    public String getSerial() {
        return serial;
    }

    public void setMsgtype(String msgtype) {
        this.msgtype = msgtype;
    }

    public String getMsgtype() {
        return msgtype;
    }

    public void setMerno(String merno) {
        this.merno = merno;
    }

    public String getMerno() {
        return merno;
    }

    public void setPosno(String posno) {
        this.posno = posno;
    }

    public String getPosno() {
        return posno;
    }

    public void setAgentNum(Long agentNum) {
        this.agentNum = agentNum;
    }

    public Long getAgentNum() {
        return agentNum;
    }

    public void setAuditdate(String auditdate) {
        this.auditdate = auditdate;
    }

    public String getAuditdate() {
        return auditdate;
    }

    public void setLocaldate(String localdate) {
        this.localdate = localdate;
    }

    public String getLocaldate() {
        return localdate;
    }

    public void setLocaltime(String localtime) {
        this.localtime = localtime;
    }

    public String getLocaltime() {
        return localtime;
    }

    public void setBid(Long bid) {
        this.bid = bid;
    }

    public Long getBid() {
        return bid;
    }

    public void setPan(String pan) {
        this.pan = pan;
    }

    public String getPan() {
        return pan;
    }

    public void setRateCode(String rateCode) {
        this.rateCode = rateCode;
    }

    public String getRateCode() {
        return rateCode;
    }

    public void setAmount(String amount) {
        this.amount = amount;
    }

    public String getAmount() {
        return amount;
    }

    public void setCharge(String charge) {
        this.charge = charge;
    }

    public String getCharge() {
        return charge;
    }

    public void setTmoney(String tmoney) {
        this.tmoney = tmoney;
    }

    public String getTmoney() {
        return tmoney;
    }

    public void setRateAffix(String rateAffix) {
        this.rateAffix = rateAffix;
    }

    public String getRateAffix() {
        return rateAffix;
    }



    public void setBno(String bno) {
        this.bno = bno;
    }

    public String getBno() {
        return bno;
    }

    public void setMerCategory(Long merCategory) {
        this.merCategory = merCategory;
    }

    public Long getMerCategory() {
        return merCategory;
    }

    public void setCardtype(Long cardtype) {
        this.cardtype = cardtype;
    }

    public Long getCardtype() {
        return cardtype;
    }

    public void setSettType(Long settType) {
        this.settType = settType;
    }

    public Long getSettType() {
        return settType;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    public Long getStatus() {
        return status;
    }

    public void setSettleSerial(String settleSerial) {
        this.settleSerial = settleSerial;
    }

    public String getSettleSerial() {
        return settleSerial;
    }

    public void setSettleState(Long settleState) {
        this.settleState = settleState;
    }

    public Long getSettleState() {
        return settleState;
    }

    public void setIsProfit(Long isProfit) {
        this.isProfit = isProfit;
    }

    public Long getIsProfit() {
        return isProfit;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setSn(String sn) {
        this.sn = sn;
    }

    public String getSn() {
        return sn;
    }

    public void setInputtype(String inputtype) {
        this.inputtype = inputtype;
    }

    public String getInputtype() {
        return inputtype;
    }

    public void setIsdissmis(Long isdissmis) {
        this.isdissmis = isdissmis;
    }

    public Long getIsdissmis() {
        return isdissmis;
    }

    public void setIsysf(Long isysf) {
        this.isysf = isysf;
    }

    public Long getIsysf() {
        return isysf;
    }

    public void setRrno(String rrno) {
        this.rrno = rrno;
    }

    public String getRrno() {
        return rrno;
    }

    public void setPhonepay(Long phonepay) {
        this.phonepay = phonepay;
    }

    public Long getPhonepay() {
        return phonepay;
    }





    public void setIsonline(Long isonline) {
        this.isonline = isonline;
    }

    public Long getIsonline() {
        return isonline;
    }

    public String getAffixCharge() {
        return affixCharge;
    }

    public void setAffixCharge(String affixCharge) {
        this.affixCharge = affixCharge;
    }

    public BigDecimal getInscharges() {
        return inscharges;
    }

    public void setInscharges(BigDecimal inscharges) {
        this.inscharges = inscharges;
    }

    public BigDecimal getSimMoney() {
        return simMoney;
    }

    public void setSimMoney(BigDecimal simMoney) {
        this.simMoney = simMoney;
    }

    public void setAccounts(Accounts accounts) {
        this.accounts = accounts;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("serial", getSerial())
                .append("msgtype", getMsgtype())
                .append("merno", getMerno())
                .append("posno", getPosno())
                .append("agentNum", getAgentNum())
                .append("auditdate", getAuditdate())
                .append("localdate", getLocaldate())
                .append("localtime", getLocaltime())
                .append("bid", getBid())
                .append("pan", getPan())
                .append("rateCode", getRateCode())
                .append("amount", getAmount())
                .append("charge", getCharge())
                .append("tmoney", getTmoney())
                .append("rateAffix", getRateAffix())
                .append("affixCharge", getAffixCharge())
                .append("bno", getBno())
                .append("merCategory", getMerCategory())
                .append("cardtype", getCardtype())
                .append("settType", getSettType())
                .append("status", getStatus())
                .append("settleSerial", getSettleSerial())
                .append("settleState", getSettleState())
                .append("isProfit", getIsProfit())
                .append("remarks", getRemarks())
                .append("sn", getSn())
                .append("inputtype", getInputtype())
                .append("isdissmis", getIsdissmis())
                .append("isysf", getIsysf())
                .append("rrno", getRrno())
                .append("phonepay", getPhonepay())
                .append("inscharges", getInscharges())
                .append("isonline", getIsonline())
                .append("simMoney", getSimMoney())
                .append("merchantInfo", getMerchantInfo().toString())
                .append("agentInfo", getAgentInfo().toString())
                .append("branchPos", getAccounts().toString())
                .toString();
    }
}
